import Vue from 'vue'
import App from './App.vue'
// import router from './router/router'
import store from './vuex/vuex'
// 整体引入element——ui
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

import VueRouter from 'vue-router'
import router from './router';
import axios from 'axios';
import VueResource from 'vue-resource';
import 'element-ui/lib/theme-chalk/index.css';
import ViewUI from 'view-design';
import 'view-design/dist/styles/iview.css';
import * as echarts from 'echarts';
import VueI18n from 'vue-i18n';
import { messages } from './components/common/i18n';
import './assets/css/main.css';
import 'babel-polyfill';
import api from './api/index';
// import { wrongMessage } from './assets/js/api';

// 日期格式化
Date.prototype.Format = function (fmt) { // author: meizz
    let o = {
        "M+": this.getMonth() + 1, // 月份
        "d+": this.getDate(), // 日
        "h+": this.getHours(), // 小时
        "m+": this.getMinutes(), // 分
        "s+": this.getSeconds(), // 秒
        "q+": Math.floor((this.getMonth() + 3) / 3), // 季度
        "S": this.getMilliseconds() // 毫秒
    };
    if (/(y+)/.test(fmt))
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (let k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
}

// //接口错误捕获
// window.addEventListener('unhandledrejection', event => {
//     event.promise.catch((e) => {
//         console.log(new Date().Format("yyyy-MM-dd hh:mm:ss"))
//         let params = {
//             date: '',
//             location: '',
//             message: ''
//         }
//         params.date = new Date().Format("yyyy-MM-dd hh:mm:ss")
//         params.location = '核心报表-交易面板'
//         params.message = e.message
//         wrongMessage(params)
//             .then((data)=>{
//                 console.log(data)
//             })
//     })
// })

Vue.use(VueRouter);
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
    return originalPush.call(this, location).catch(err => err)
}
Vue.prototype.$axios = axios;
Vue.prototype.$api = api;
Vue.use(VueResource);
Vue.use(ElementUI);
Vue.use(ViewUI);
Vue.prototype.$echarts = echarts;
Vue.use(VueI18n);
const i18n = new VueI18n({
    locale: 'zh',
    messages
});
Vue.config.productionTip = false;

//使用钩子函数对路由进行权限跳转
router.beforeEach((to, from, next) => {
    document.title = `凯睿`;
    console.log(to.meta.permission)
    if (navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') {
        Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看', '浏览器不兼容通知', {
            confirmButtonText: '确定'
        });
    } else {
        next();
    }
    // const role = localStorage.getItem('ms_username');
    // if (!role && to.path !== '/login') {
    //     next('/login');
    // } else if (to.meta.permission) {
    //     // 如果是管理员权限则可进入，这里只是简单的模拟管理员权限而已
    //     role === 'admin' ? next() : next('/403');
    // } else {
    //     // 简单的判断IE10及以下不进入富文本编辑器，该组件不兼容
    //     if (navigator.userAgent.indexOf('MSIE') > -1 && to.path === '/editor') {
    //         Vue.prototype.$alert('vue-quill-editor组件不兼容IE10及以下浏览器，请使用更高版本的浏览器查看', '浏览器不兼容通知', {
    //             confirmButtonText: '确定'
    //         });
    //     } else {
    //         next();
    //     }
    // }
});


Vue.use(ElementUI);
Vue.config.productionTip = false
// 注册全局组件
const files = require.context('@/components',true,/index\.vue$/);
files.keys().forEach(item=>{
    const fileItem = files(item).default;
    // 如果组件内定义name 则需要全局引用的
    if(fileItem.name){
        Vue.component(fileItem.name,fileItem);
    }
});
new Vue({
    router,
    store,
    i18n,
    render: h => h(App)
}).$mount('#app')
